package com.ruoyi.system.service.impl;

import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.mapper.CreditNewsMapper;
import com.ruoyi.system.domain.CreditNews;
import com.ruoyi.system.service.ICreditNewsService;

/**
 * 新闻资讯Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-01-28
 */
@Service
public class CreditNewsServiceImpl implements ICreditNewsService 
{
    @Autowired
    private CreditNewsMapper creditNewsMapper;

    /**
     * 查询新闻资讯
     * 
     * @param newsId 新闻资讯主键
     * @return 新闻资讯
     */
    @Override
    public CreditNews selectCreditNewsByNewsId(Long newsId)
    {
        return creditNewsMapper.selectCreditNewsByNewsId(newsId);
    }

    /**
     * 查询新闻资讯列表
     * 
     * @param creditNews 新闻资讯
     * @return 新闻资讯
     */
    @Override
    public List<CreditNews> selectCreditNewsList(CreditNews creditNews)
    {
        return creditNewsMapper.selectCreditNewsList(creditNews);
    }

    /**
     * 新增新闻资讯
     * 
     * @param creditNews 新闻资讯
     * @return 结果
     */
    @Override
    public int insertCreditNews(CreditNews creditNews)
    {
        creditNews.setCreateTime(DateUtils.getNowDate());
        if (creditNews.getViewCount() == null) {
            creditNews.setViewCount(0);
        }
        return creditNewsMapper.insertCreditNews(creditNews);
    }

    /**
     * 修改新闻资讯
     * 
     * @param creditNews 新闻资讯
     * @return 结果
     */
    @Override
    public int updateCreditNews(CreditNews creditNews)
    {
        creditNews.setUpdateTime(DateUtils.getNowDate());
        return creditNewsMapper.updateCreditNews(creditNews);
    }

    /**
     * 批量删除新闻资讯
     * 
     * @param newsIds 需要删除的新闻资讯主键
     * @return 结果
     */
    @Override
    public int deleteCreditNewsByNewsIds(Long[] newsIds)
    {
        return creditNewsMapper.deleteCreditNewsByNewsIds(newsIds);
    }

    /**
     * 删除新闻资讯信息
     * 
     * @param newsId 新闻资讯主键
     * @return 结果
     */
    @Override
    public int deleteCreditNewsByNewsId(Long newsId)
    {
        return creditNewsMapper.deleteCreditNewsByNewsId(newsId);
    }

    /**
     * 查询已发布的新闻资讯列表
     * 
     * @param creditNews 新闻资讯查询条件
     * @return 新闻资讯集合
     */
    @Override
    public List<CreditNews> selectPublishedNewsList(CreditNews creditNews)
    {
        return creditNewsMapper.selectPublishedNewsList(creditNews);
    }

    /**
     * 阅读新闻资讯（增加浏览量）
     * 
     * @param newsId 新闻ID
     * @return 新闻资讯
     */
    @Override
    public CreditNews readNews(Long newsId)
    {
        creditNewsMapper.increaseViewCount(newsId);
        return creditNewsMapper.selectCreditNewsByNewsId(newsId);
    }

    /**
     * 获取新闻统计信息
     * @return 新闻统计数据
     */
    @Override
    public Map<String, Object> getNewsStats()
    {
        return creditNewsMapper.getNewsStats();
    }
} 